$(document).ready(function() {
// 监听分块上传的时间点，断点续传
    var fileMd5;
    var chunkSize;
    WebUploader.Uploader.register({
            "before-send-file": "beforeSendFile",
            "before-send": "beforeSend",
            "after-send-file": "afterSendFile"
        }, {
            beforeSendFile: function (file) {
                // 创建一个deffered,用于通知是否完成操作
                var deferred = WebUploader.Deferred();

                //计算文件的唯一标识，用于断点续传和妙传
                //计算文件 md5 值，返回一个 promise 对象，可以监听 progress 进度。
                (new WebUploader.Uploader()).md5File(file, 0, 5 * 1024 * 1024)
                    .progress(function (percentage) {
                        $("#" + file.id).find("span.state").text("正在获取文件信息..." + percentage);
                    })
                    .then(function (val) {
                        fileMd5 = val;   //md5的值
                        $("#" + file.id).find("span.state").text("成功获取文件信息");
                        // 放行
                        deferred.resolve();
                    });
                // 通知完成操作
                return deferred.promise();
            },
            beforeSend: function (block) {
                var deferred = WebUploader.Deferred();

                // 支持断点续传，发送到后台判断是否已经上传过
                $.ajax(
                    {
                        type: "POST",
                        url: "http://media.cnlivesh.com:18080/transfile/UploadActionServlet?action=checkChunk",
                        data: {
                            fileMd5: fileMd5,
                            chunk: block.chunk,
                            chunkSize: block.end - block.start,
                            userName: "zhangying",
                            password: "huarenma8851"
                        },
                        dataType: "json",
                        success: function (response) {
                            if (response.ifExist) {
                                // 分块存在，跳过该分块
                                deferred.reject();
                            } else {
                                // 分块不存在或不完整，重新发送
                                deferred.resolve();
                            }
                        }
                    }
                );

                // 发送文件md5字符串到后台
                this.owner.options.formData.fileMd5 = fileMd5;
                this.owner.options.formData.chunkSize = block.end - block.start;
                return deferred.promise();
            },

            //alert('aa');
            afterSendFile: function (file) {
                // 通知合并分块
                $.ajax(
                    {
                        type: "POST",
                        url: "http://media.cnlivesh.com:18080/transfile/UploadActionServlet?action=mergeChunks",
                        data: {
                            fileMd5: fileMd5,
                            fileName: file.name,
                            fileSize: file.size,
                            channelId: 'HuaRenMaChannelId',
                            category: 'category',
                            tastId: 'tastId',
                            transBackUrl: 'http://content.liudenghui.xin/portal/admin_article/tiskapi'
                        },
                        dataType: "json",
                        success: function (response) {
                            //alert("hehe");
                            //alert(response.url);
                            $("#file-video").val(response.url);
                            $("#file-video").attr('value',response.url);
                            $("#is_taskid").attr('value',response.taskid);
                            console.log(response.url);
                            console.log(response.taskid);
                        }
                    }
                );
            }
        }
    );

// 上传基本配置
    var uploader = WebUploader.create(
        {
            swf: "http://content.liudenghui.xin/static/js/videoupload/Uploader.swf",
            server: "http://media.cnlivesh.com:18080/transfile/FileUploadServlet",
            pick: "#filePicker",
            auto: true,
            dnd: "#dndArea",
            disableGlobalDnd: true,
            paste: "#uploader",
            formData: {"name": name},
            // 分块上传设置
            // 是否分块
            chunked: true,
            // 每块文件大小（默认5M）
            chunkSize: 5 * 1024 * 1024,
            // 开启几个并非线程（默认3个）
            threads: 3,
            // 在上传当前文件时，准备好下一个文件
            prepareNextFile: true
        }
    );

// 生成缩略图和上传进度
    uploader.on("fileQueued", function (file) {
            // 把文件信息追加到fileList的div中
            $("#fileList").append("<div id='" + file.id + "'><img/><span>" + file.name + "</span><div><span class='state'></span></div><div><progress></progress><span class='percentage'></span></div></div>");
            $("progress").attr("value", "0");
            $("progress").attr("max", "100");

            // 制作缩略图
            // error：不是图片，则有error
            // src:代表生成缩略图的地址
            uploader.makeThumb(file, function (error, src) {
                if (error) {
                    $("#" + file.id).find("img").replaceWith("<span>无法预览&nbsp;</span>");
                } else {
                    $("#" + file.id).find("img").attr("src", src);
                }
            });
        }
    );

// 监控上传进度
// percentage:代表上传文件的百分比
    uploader.on("uploadProgress", function (file, percentage) {
        $("#" + file.id).find("span.percentage").text(Math.round(percentage * 100) + "%");
        $("progress").val(Math.round(percentage * 100));
        // $("#is_video_url").attr("readonly", "readonly");
        $("#is_details_video_url").attr("readonly", "readonly");
    });

});